package main

import "fmt"

/*
指针意味着一个变量指向的并非字面量而是一个内存地址
例如
	a := 12
	b := &a
此时b获取到的并不是a的字面量而是a的内存地址，他的类型是*int

*/

func main() {
	a := 10
	var b *int = &a
	fmt.Printf("b的类型是%T\n", b)              //*int，指针的类型就是*int
	fmt.Printf("b指向的内存地址实际指向的字面量为%d\n", *b) //10，因为b指向a的内存地址，而a又实际指向10这个字面量
	c := 12.0
	d := &c
	fmt.Printf("float64的指针类型为%T\n", d)
}

/*
实际上，指针类型不只是有*int，例如float32的类型指针实际上就是*float32以此类推
目前go语言的指针类型有：int系列、float系列、bool、string、数组、结构体struct
而她们都有对应的指针类型

*/
